const express = require('express');
const router = express.Router();
const Todo = require('../models/todo');

// 获取所有待办事项
router.get('/get-todo', async (req, res) => {
    try {
        // 从数据库中查询所有待办事项
        const todos = await Todo.find().sort({ createdAt: -1 });
        res.json(todos);
    } catch (error) {
        console.error('获取待办事项失败:', error);
        res.status(500).json({ message: '服务器错误' });
    }
});

// 添加新的待办事项
router.post('/add-todo', async (req, res) => {
    try {
        const { value, isCompleted = false } = req.body;
        
        // 验证输入
        if (!value || value.trim() === '') {
            return res.status(400).json({ message: '待办事项内容不能为空' });
        }

        // 创建新的待办事项
        const newTodo = new Todo({
            value,
            isCompleted
        });

        // 保存到数据库
        const savedTodo = await newTodo.save();
        res.status(201).json(savedTodo);
    } catch (error) {
        console.error('添加待办事项失败:', error);
        res.status(500).json({ message: '服务器错误' });
    }
});

// 更新待办事项状态
router.post('/update-todo/:id', async (req, res) => {
    try {
        const todo = await Todo.findById(req.params.id);
        
        if (!todo) {
            return res.status(404).json({ message: '待办事项不存在' });
        }

        // 更新完成状态（取反）
        todo.isCompleted = !todo.isCompleted;
        const updatedTodo = await todo.save();
        
        res.json(updatedTodo);
    } catch (error) {
        console.error('更新待办事项失败:', error);
        res.status(500).json({ message: '服务器错误' });
    }
});

// 删除待办事项
router.post('/del-todo/:id', async (req, res) => {
    try {
        const result = await Todo.findByIdAndDelete(req.params.id);
        
        if (!result) {
            return res.status(404).json({ message: '待办事项不存在' });
        }

        res.json({ message: '删除成功' });
    } catch (error) {
        console.error('删除待办事项失败:', error);
        res.status(500).json({ message: '服务器错误' });
    }
});

module.exports = router; 